/**
 * @文件名 ExtDao.java
 * @包名 com.fang.yttz.dao
 * @说明 Dao方法扩展
 * @作者 wdfang
 * @时间 2013-3-11 下午11:19:28
 * @版本 V1.0
 */ 
package com.fang.yttz.dao;

import java.util.List;

import org.nutz.dao.Condition;
import org.nutz.dao.Dao;
import org.nutz.dao.QueryResult;
import org.nutz.dao.Sqls;
import org.nutz.dao.entity.Record;
import org.nutz.dao.pager.Pager;
import org.nutz.dao.sql.Sql;

/**
 * @类名 ExtDao
 * @描述 Dao方法扩展
 * @作者 wdfang
 * @日期 2013-3-11 下午11:19:28
 * ========修改日志=======
 *
 */
public class ExtDao {
	/**
	 * 
	 * @名称 getPageList
	 * @描述  分页实现类封装
	 * @参数 @param classz 传递的class类
	 * @参数 @param cnd 条件
	 * @参数 @param dao 连接
	 * @参数 @param pageNumber 页码
	 * @参数 @param pageSize 每页显示的条数
	 * @参数 @return
	 * @返回值 QueryResult
	 * @作者 wdfang
	 * @时间 2013-3-11 下午10:45:27
	 */
	public QueryResult getPageList(Class<?> classz, Condition cnd, Dao dao, int pageNumber, int pageSize) {
		Pager pager = dao.createPager(pageNumber, pageSize);
		List<?> list = dao.query(classz, cnd, pager);
		pager.setRecordCount(dao.count(classz, cnd));
		QueryResult queryResult = new QueryResult(list, pager);
		return queryResult;
	}
	/**
	 * 
	 * @名称 getPageList
	 * @描述   分页实现类封装
	 * @参数 @param sql sql语句
	 * @参数 @param dao 连接
	 * @参数 @param pageNumber 页码
	 * @参数 @param pageSize 每页显示的条数
	 * @参数 @return
	 * @返回值 QueryResult
	 * @作者 wdfang
	 * @时间 2013-3-11 下午10:46:41
	 */
	public QueryResult getPageList(String sqlstring, Dao dao, int pageNumber, int pageSize) {
		Pager pager = dao.createPager(pageNumber, pageSize);
		Sql sql = Sqls.queryRecord(sqlstring);
		sql.setPager(pager);
		dao.execute(sql);
		List<Record> list = sql.getList(Record.class);
		Sql sql2 = Sqls.fetchInt("SELECT COUNT(0) FROM ("+sqlstring+") A");
		dao.execute(sql2);
		pager.setRecordCount(sql2.getInt());
		QueryResult queryResult = new QueryResult(list, pager);
		return queryResult;
	}
}
